﻿using Com.queryzer2.Domain;
using System.Configuration;
using log4net;
using Com.queryzer2.Dao.Base;
using Com.queryzer2.Dao.Interface;

namespace Com.queryzer2.Dao.Impl
{
    /// <summary>
    /// SessionManager.
    /// </summary>
    public class OracleSessionManager : OracleDaoSession<OracleSessionManager, ISessionModel>, ISessionModel
    {
        /// <summary>
        /// C.tor
        /// </summary>
        public OracleSessionManager()
            : base()
        {
            base.Daos = this;
        }

        public OracleSessionManager(string conn)
            : base(conn)
        {
            base.Daos = this;
        }

        #region ISessionModel Membri di

        public IUtenteDao UtenteDao { get { return new UtenteDao(this); } }

        public IAnagFaseDao AnagFaseDao
        {
            get { return new AnagFaseDao(this); }
        }

        public IAnagInammissibilitaDao AnagInammissibilitaDao
        {
            get { return new AnagInammibilitaDao(this); }
        }

        public IAnagMotivoStatoFaseDao AnagMotivoStatoFaseDao
        {
            get { return new AnagMotivoStatoFaseDao(this); }
        }

        public IAnagServizioDao AnagServizioDao
        {
            get { return new AnagServizioDao(this); }
        }

        public IAnagStatoFaseDao AnagStatoFaseDao
        {
            get { return new AnagStatoFaseDao(this); }
        }

        public IAnagVenditoreDao AnagVenditoreDao
        {
            get { return new AnagVenditoreDao(this); }
        }


        public IPraticaDao PraticaDao
        {
            get { return new PraticaDao(this); }
        }

        public IPraticaD01Dao PraticaD01Dao
        {
            get { return new PraticaD01Dao(this); }
        }

        public IPraticaM01Dao PraticaM01Dao
        {
            get { return new PraticaM01Dao(this); }
        }

        public IPraticaM02Dao PraticaM02Dao
        {
            get { return new PraticaM02Dao(this); }
        }

        public IPraticaNOSTDDao PraticaNOSTDDao
        {
            get { return new PraticaNOSTDDao(this); }
        }
        
        public IPraticaR01Dao PraticaR01Dao
        {
            get { return new PraticaR01Dao(this); }
        }

        public IPraticaV01Dao PraticaV01Dao
        {
            get { return new PraticaV01Dao(this); }
        }

        public IPraticaV02Dao PraticaV02Dao
        {
            get { return new PraticaV02Dao(this); }
        }

        public IEsitoPraticaDao EsitoPraticaDao
        {
            get { return new EsitoPraticaDao(this); }
        }

        public IFasePraticaDao FasePraticaDao
        {
            get { return new FasePraticaDao(this); }
        }

        public IDocumentoDao DocumentoDao
        {
            get { return new DocumentoDao(this); }
        }

        public IServizioDao ServizioDao
        {
            get { return new ServizioDao(this); }
        }

        public IRispostaDao RispostaDao
        {
            get { return new RispostaDao(this); }
        }

        #endregion
    }
}

